# encoding:utf-8
'''
@author : xaing
@time : 2018/4/5 23:47
@地址 : 广州
@作用 : 可以下载漫画，但是还没解决登录的问题以及顺序下载的问题，不完美
@结果 :
'''
import urllib.request
import re
import os
import time

baseImgFile = "E:\\下载\\img18\\"
pageInt = 0

def getHtml(url):
    '''
    获取网页
    :param url: 网页地址
    :return: 返回网页源码
    '''
    # # 带上参数，让他更像浏览器
    headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'}
    req = urllib.request.Request(url=url, headers=headers)

    html = urllib.request.urlopen(req).read().decode('utf-8')
    # print("网页源码：" + html)
    return html


def getMain(html):
    '''
    获取到分页面的主类
    :param html: 要进行截取的页面
    :return:
    '''
    p = r'<li class="i_list list_n2"><a href=\"([^"]+)'
    urlList = re.findall(p, html)
    return urlList

def checekFile(file):
    '''
    判断文件夹是否存在
    :param file:  文件夹路径
    :return: false 不存在
    '''
    return os.path.exists(file)

def getImg(html):
    '''
    获得图片页图片的地址（分页面地址）
    :param html: 图片页面的地址
    :return:
    '''
    # p = r'<img class="alignnone size-full wp-image-12218" src=\"([^"]+)'
    # re.findall(r'http:.+\.jpg', buf)
    p = r'<img class="alignnone size-full wp-image-\d\d\d\d\d" src=\"([^"]+)'
    imgList = re.findall(p, html)
    return imgList

def downImg(urlImg, imgName):
    '''
    下载图片
    :param urlImg: 图片的url地址
    :param imgName:  图片名
    :return:
    '''
    try:
        f = open(baseImgFile + str(imgName) + ".jpg", 'wb')
        f.write((urllib.request.urlopen(urlImg)).read())
        f.close()
    except Exception as e:
        print(imgName + " 出现下载出错=================================================error")

def getNextPage(html):
    '''
    是否还有下一个子页面
    :param html: 页面
    :return: 如果还有子页面，那么会返回下一页的网址
    '''
    p = r'<a\shref="([^"]+)[^>]*title="下一页"'
    nextPage = re.findall(p, html)
    return nextPage



def mainDef(mainUrl):
    html = getHtml(mainUrl)
    imgList = getImg(html)
    print("开始下载图片·········")
    for each in imgList:
        global pageInt
        pageInt = 1 + pageInt
        downImg(each, pageInt)
    nextHtml = getNextPage(html)
    print("图片下载完成，开始下一个网址·········" + nextHtml[0])
    mainDef(nextHtml[0])
    time.sleep(4)


# url = 'http://www.vaga.cc/12215.html'
# 已下载到这里
url = 'http://www.vaga.cc/18166.html'
mainDef(url)





